package com.hmall.item.web;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hmall.common.dto.PageDTO;
import com.hmall.item.mapper.ItemMapper;
import com.hmall.item.pojo.Item;
import com.hmall.item.service.IItemService;
import org.apache.ibatis.annotations.Delete;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.sql.Wrapper;
import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("item")
public class ItemController {

    @Autowired
    private IItemService itemService;
    @Autowired
    private ItemMapper itemMapper;
    @GetMapping("/list")
    public PageDTO<Item> list(@RequestParam("page")Integer page,
                              @RequestParam("size")Integer size){
        PageDTO pageDTO=new PageDTO();
        Page<Item> itemPage = new Page<>(page, size);
        Page<Item> itemPage1 =itemMapper.selectPage(itemPage, null);
        pageDTO.setList(itemPage1.getRecords());
        pageDTO.setTotal(itemPage1.getTotal());




        return pageDTO;


    }
//    根据id查找数据
    @GetMapping("/{id}")
    public Item getById(@PathVariable Integer id){

        Item item = itemService.getById(id);
        return item;

    }
//    新增商品信息
    @PostMapping
    public void save(@RequestBody Item item){
         itemService.add(item);


    }
//    商品的上架和下架
    @PutMapping("/status/{id}/{status}")
    public void statusById(@PathVariable Long id,@PathVariable Integer status ){
        UpdateWrapper<Item> itemUpdateWrapper = new UpdateWrapper<>();
        itemUpdateWrapper.set("status",status);
        itemUpdateWrapper.set("update_time",new Date());
        itemService.update(itemUpdateWrapper);
    };
//    商品的修改
    @PutMapping
    public void update(@RequestBody Item item){
        item.setUpdateTime(new Date());
        itemMapper.updateById(item);



    }
//    商品的删除
    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id){
        itemMapper.deleteById(id);

    }





}
